namespace SmartMathLibrary.Transformation
{
    /// <summary>
    /// Interface to implement an AffinTransformationParameters class.
    /// </summary>
    public interface IAffinTransformationParameters
    {
        /// <summary>
        /// Gets or sets the scale of the x axis.
        /// </summary>
        /// <value>The scale of the x axis.</value>
        double ScaleX { get; set; }

        /// <summary>
        /// Gets or sets the of the y axis.
        /// </summary>
        /// <value>The scale of the y axis.</value>
        double ScaleY { get; set; }

        /// <summary>
        /// Gets or sets the of the z axis.
        /// </summary>
        /// <value>The scale of the z axis.</value>
        double ScaleZ { get; set; }

        /// <summary>
        /// Gets or sets the rotationfactor for the x axis.
        /// </summary>
        /// <value>The rotationfactor for the x axis.</value>
        double RotationX { get; set; }

        /// <summary>
        /// Gets or sets the rotationfactor for the y axis.
        /// </summary>
        /// <value>The rotationfactor for the y axis.</value>
        double RotationY { get; set; }

        /// <summary>
        /// Gets or sets the rotationfactor for the z axis.
        /// </summary>
        /// <value>The rotationfactor for the z axis.</value>
        double RotationZ { get; set; }

        /// <summary>
        /// Gets or sets the translationvalue for the x axis.
        /// </summary>
        /// <value>The translationvalue for the x axis.</value>
        double TranslationX { get; set; }

        /// <summary>
        /// Gets or sets the translationvalue for the y axis.
        /// </summary>
        /// <value>The translationvalue for the y axis.</value>
        double TranslationY { get; set; }

        /// <summary>
        /// Gets or sets the translationvalue for the z axis.
        /// </summary>
        /// <value>The translationvalue for the z axis.</value>
        double TranslationZ { get; set; }
    }
}